﻿using KayakMes.Check.Application.Input;
using KayakMes.Check.Application.OUT;
using KayakMes.Check.Domain;
using KayakMes.Common.Dtos.CheckDto;
using KayakMes.Common.Result;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace KayakMes.Check.Application.CheckStandard
{
    /// <summary>
    /// 检测标准接口
    /// </summary>
    public interface ICheckStandard
    {
        /// <summary>
        /// 添加检测标准
        /// </summary>
        /// <param name="checkStandard"></param>
        /// <returns></returns>
        ApiResult<int> AddCheckStandard(AddCheckStandardInput input);
        /// <summary>
        /// 删除检测标准
        /// </summary>
        /// <param name="Id"></param>
        /// <returns></returns>
        ApiResult<int> DeleteCheckStandard(long Id);
        /// <summary>
        /// 修改检测标准
        /// </summary>
        /// <param name="checkStandard"></param>
        /// <returns></returns>
        ApiResult<int> UpdateCheckStandard(UpdateCheckStandardInput checkStandard);
        /// <summary>
        /// 分页查询检测标准
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
         ApiPaging<CheckStandardDto> GetAllCheckStandard(GetCheckStandardInput input);
        /// <summary>
        /// 获取检测标准详情
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public ApiResult<CheckStandardDetailResult> GetModelCheckStandard(long id);
        /// <summary>
        ///随机生成检测标准编号
        /// </summary>
        /// <returns></returns>
        public string GetCheckItemCode();

        /// <summary>
        /// 两表联查检测标准
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        public ApiPaging<ProcessCheckDto> GetAllCheck(GetCheckInput input);


        /// <summary>
        /// 检验完毕修改状态
        /// </summary>
        /// <param name="checkCode"></param>
        /// <returns></returns>
        ApiResult<int> UpdateIselete(string checkCode);
    }
}
